/*
** $Id: lctype.c $
** 'ctype' functions for Lua
** See Copyright Notice in lua.h
*/

#define lctype_c
#define LUA_CORE

#include "lprefix.h"

#include "lctype.h"

#if !LUA_USE_CTYPE /* { */

#include <limits.h>

#if defined(LUA_UCID) /* accept UniCode IDentifiers? */
/* consider all non-ascii codepoints to be alphabetic */
#define NONA 0x01
#else
#define NONA 0x00 /* default */
#endif

LUAI_DDEF const lu_byte luai_ctype_[UCHAR_MAX + 2] = {
    0x00,                                           /* EOZ */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0. */
    0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 1. */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x0c, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, /* 2. */
    0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
    0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /* 3. */
    0x16, 0x16, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04,
    0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 4. */
    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 5. */
    0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x05,
    0x04, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x05, /* 6. */
    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
    0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, /* 7. */
    0x05, 0x05, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 8. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* 9. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* a. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* b. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    0x00, 0x00, NONA, NONA, NONA, NONA, NONA, NONA, /* c. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* d. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA, /* e. */
    NONA, NONA, NONA, NONA, NONA, NONA, NONA, NONA,
    NONA, NONA, NONA, NONA, NONA, 0x00, 0x00, 0x00, /* f. */
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

#endif /* } */
